<?php
	include("../util.php");
	include("../config.inc.php");
	include("../clases.php");

	session_start();

if ((!$_SESSION["obj_sesion"]->compruebaAcceso("ADME") ) || ( !$_SESSION["obj_sesion"]->compruebaAcceso("ADME"))){	
	echo "<script language='javascript'>location.href='salir.php'</script>";
		die(); }
		

switch($_REQUEST["action"]){

/*#######################################################################################################################################################*/
/*########################################################################  GRID  #######################################################################*/
/*#######################################################################################################################################################*/
	//imprime el jqGrid
	case 'grid':{
		
		 //Comprueba el objeto de sesion de que tipo es
        if($_SESSION["obj_sesion"]->getTipo()=="Normal" ){
				$esNormal=true;
				$id_empresa=$_SESSION["obj_sesion"]->getid_empresa();
			} else  if($_SESSION["obj_sesion"]->getTipo()=="Superusuario" ){
				$esNormal=false;
			}
	
		$page = $_GET['page']; // get the requested page
		$limit = $_GET['rows']; // get how many rows we want to have into the grid 
		$sidx = $_GET['sidx']; // get index row - i.e. user click to sort 
		$sord = $_GET['sord']; // get the direction 
		if(!$sidx) $sidx =1; 
		descodificar_utf8_array($_GET);
		$campos = array('id_producto','ean','nombre','proveedor','unidades','udsxcaja','unidades_palet','trazabilidad');//nombres de los campos que nos va a devolver la consulta
		$traductor = array('m.id_producto','m.ean','m.nombre','p.nombre','m.unidades','m.udsxcaja','m.unidades_palet','m.trazabilidad');//nombre de los campos de la tabla a la que se le va a hacer la consulta
		//Comprueba el tipo de usuario para mostrar solo los de su empresa en caso de que sea usuario "normal" o mostrar todos los campos
		if ($esNormal)
			//Consulta que devuelve el numero de filas que devuelve la consulta con los datos
			$result = consultaSimple("productos","fecha_baja IS NULL and id_proveedor= ".$id_empresa,"","COUNT(*) AS count");
			else
			//Consulta que devuelve el numero de filas que devuelve la consulta con los datos
			$result = consultaSimple("productos","fecha_baja IS NULL","","COUNT(*) AS count");
		//Cuenta los resultados que a devuelto la consulta y los pasa a $count
		$count = $result['count']; 
		//Cuentas para obtener la paginacion
		if( $count >0 ) { 
			$total_pages = ceil($count/$limit); 
		} else { 
			$total_pages = 0;
		} 
		if ($page > $total_pages) 
			$page=$total_pages; 

		$start = $limit*$page - $limit;
		//Tablas a las que se le va a hacer la consulta
		$table =" productos m, proveedores p";
		$where ="";
		//Aqui se configura el where dependiendo del usuario si es "normal" o "superusuario"
		if ($esNormal)
			$where .="m.fecha_baja IS NULL and m.id_proveedor = p.id_proveedor and m.id_proveedor= ".$id_empresa;
		else
			$where .="m.fecha_baja IS NULL and m.id_proveedor = p.id_proveedor ";
		//Forma el select para el jqgrid y lo pasa a la variable $select
		$select = 'm.id_producto AS id_producto'.formar_select_jqgrid($campos,$traductor);
		//Se le añade al where la traduccion de los campos que se van a consultar
		$where .= formar_where_jqgrid($campos,$traductor,$_GET);
		//Se hace la consulta y el resultado los guarda en el array $result
		$result = consultaMultiple($table,$where,"ORDER BY $sidx $sord LIMIT $start , $limit",$select);
		pasar_utf8_array($result);
		//Guarda en responce los datos de paginacion
		$responce->page = $page; 
		$responce->total = $total_pages; 
		$responce->records = $count; 
		//Guarda en $responce los datos de $result
		for($i=0;$i<count($result);$i++){
			$responce->rows[$i]['id']=$result[$i]["id_producto"]; 
			for($x=0;$x<count($campos);$x++)
				//Comprueba que la fila no sea la 6 y en caso en que lo sea se calcula el campo
				if ($x == 6) {
					$y=$x-2;
					$ud1 = $result[$i][$campos[$y]];
					$ud2 = $result[$i][$campos[$x]];
					if ($ud1!=0 && $ud2!=0){
						$ud3 = $ud1/$ud2;
						//$ud3= number_format($ud3, 2, ",", ".");
						$ud3=ceil($ud3);
					} else {
						$ud3 = "-";
					}
					$responce->rows[$i]['cell'][]=$result[$i][$campos[$x]]; // campo cajas por palet
					$responce->rows[$i]['cell'][]=$ud3; // campo stock palets
				} else { 
					$responce->rows[$i]['cell'][]=$result[$i][$campos[$x]];
				}

		}
		//Devuelve los datos de $responce
		echo json_encode($responce); 
		die();
	}

/*#######################################################################################################################################################*/
/*##################################################################  FORMULARIO  #######################################################################*/
/*#######################################################################################################################################################*/
	//Formulario modal de inserccion y modificacion de los articulos
	case 'modalLote':{
		//Consulta donde se obtiene los datos de la tabla producto
		$vector = consultaSimple("productos","id_producto=".$_REQUEST["id_producto"]);
		pasar_utf8_array($vector);
		//Tablas a las que se les hace la consulta
		$table =" productos p, lotes l, distribuidores d";
		//Where que se utilizara para obtener los datos que queremos en la consulta
		$where ="";
		$where .="l.fecha_baja IS NULL and p.id_producto = l.id_producto and l.cantidad > 0 and  l.id_distribuidor=d.id_distribuidor and l.id_producto=".$_REQUEST["id_producto"];
		//Select que se utilizara para obtener los campos que utilizaremos
		$select = 'p.id_producto AS id_producto, p.nombre as producto, l.n_lote, l.cantidad as cantidad, l.fecha_caducidad, d.nombre as distribuidor';
		//Realiza la consulta que hemos configurado anteriormente y los guarda en $result
		$result = consultaMultiple($table,$where,"ORDER BY l.fecha_caducidad desc",$select);
		pasar_utf8_array($result);
			
				//Muestra el formulario
				echo '
					<fieldset style="width:95% ">
					<legend class="cabecera_agenda_finde"><b>Lotes de "'.utf8_decode($vector["nombre"]).'"</b></legend>
					<table border="0" cellpadding="3" cellspacing="2" width="95%" align="center">
					
					<tr>
						<td class="cabecera_agenda_finde" align="center">Lote </td>
						<td class="cabecera_agenda_finde" align="center">Cajas</td>
						<td class="cabecera_agenda_finde" align="center">Fecha de Caducidad: </td>
						<td class="cabecera_agenda_finde" align="center">Distribuidor: </td>
					</tr>
				<tr ><td style="text-align:center;" colspan="4"><hr/> </td></tr>
';
				//Muestras las lineas de lote
				foreach ($result as $key => $value){	
				echo '<tr>
						<td style="text-align:center;"><input type="text" class="cabecera_agenda_finde" name="n_lote" id="n_lote" size="8" value="'.$value["n_lote"].'" disabled="disabled"></td>
						<td style="text-align:center;"><input type="text" class="cabecera_agenda_finde" name="cantidad" id="cantidad" size="8"  value="'.$value["cantidad"].'" disabled="disabled"></td>
						<td style="text-align:center;"><input type="text" class="cabecera_agenda_finde" name="fecha_caducidad" id="fecha_caducidad" size="10"  value="'.$value["fecha_caducidad"].'" disabled="disabled"></td>
						<td style="text-align:center;"><input type="text" class="cabecera_agenda_finde" name="Distribuidor" id="Distribuidor" size="35" value="'.$value["distribuidor"].'" disabled="disabled"></td>
					</tr>';
				} 
				//Comprueba que $result no esta vacio en caso contrario muestra un mensaje
				if (!$result){
					echo '<tr ><td style="text-align:center;" colspan="4"> </td></tr>';
					echo '<tr ><td style="text-align:center;" colspan="4"> </td></tr>';
					echo '<tr ><td style="text-align:center;" colspan="4"> </td></tr>';

					echo '<tr ><td style="text-align:center;" colspan="4"> No hay lotes para este producto </td></tr>';
					
					}
				echo '<tr>
						<td class="txt_normal_neg" style="text-align:center; " colspan="2"><div id="contenedor"></div></td>
					</tr>	
					
					</table>
					</fieldset>
				';
		die();
	}

/*#######################################################################################################################################################*/
/*################################################### OPERACIONES DE EDICION DE REGISTROS ###############################################################*/
/*#######################################################################################################################################################*/
	
	case 'insertar':{//Esta funcion inserta el producto en la base de datos
		//Comprueba que el campo nombre no este vacio en caso contrario sale de la funcion
		if($_POST["nombre"]==""){ echo "nombre"; die(); }
        
		//Obtiene el ultimo id que se ha asignado
		$id_max = maxId("productos","id_producto");
		//Se llena el array $vector con los datos pasados a traves de $_POST
		$vector = array();
		$vector["id_producto"] = $id_max;
		$vector["nombre"] = $_POST["nombre"];
		$vector['descripcion'] = $_POST['descripcion'];
		$vector['unidades'] = $_POST['unidades'];
		$vector['unidades_palet'] = $_POST['unidades_palet'];
		//Inserta en la base de datos el articulo
		insertaBD("productos",$vector);
		die("OK");
	};
	case 'modificar':{ //Funcion que modifica los articulos en la base de datos
		if($_POST["nombre"]==""){ echo "nombre"; die(); }
       //Se llena el array $vector con los datos pasados a traves de $_POST
		$vector = array();
		$vector["nombre"] = $_POST["nombre"];
		$vector['descripcion'] = $_POST['descripcion'];
		$vector['unidades'] = $_POST['unidades'];
		$vector['unidades_palet'] = $_POST['unidades_palet'];
		$vector['id_producto'] = $_POST['id_producto'];
		$vector['id_proveedor'] = $_POST['id_proveedor'];
		//Modifica el articulo en la base de datos
		modificaBD("productos",$vector,"id_producto = ".$_POST["id_producto"]);
		die("OK");			
	};
	
	case 'modificarFila':{//Modifica las unidades del articulo seleccionado

		$vector = array();
		$vector['unidades'] = $_GET['unidades'];

		modificaBD("productos",$vector,"id_producto = ".$_GET["id_producto"]);
		die("OK");			

	};
	
	case 'borrar':{//Borra logicammente el articulo seleccionado en la base de datos

		$vector = array();
		$vector["fecha_baja"] = date("Y-m-d H:i:s");
		//Modifica en la tabla el campo fecha_baja
		modificaBD("productos",$vector,"id_producto=".$_GET["id_producto"]);

		die("OK");
		
	};
		
	
};
?>
